package edu.android.proyecto.sqliteclient;
import java.util.ArrayList;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import edu.android.proyecto.beans.Mesa;


public class MesaDbHelper
{
	/* los campos de la tabla TB_CIUDAD */
	private String TABLE_NAME = "TB_MESA";
	private String ID = "ID";
	private String CANTIDAD = "CANTIDAD";
	private String NUMERO = "NUMERO";
	private String ESTADO = "ESTADO";

	
	private final Context context;
	private OpenDbHelper DBHelper;
	
	public MesaDbHelper(Context ctx)
	{ /*
	   * el contexto es el entorno de la aplicacion se lo tenemos que pasar a
	   * Helper para que SQLite sepa en que paquete guardar la BD
	   */
		this.context = ctx;
		DBHelper = new OpenDbHelper(context);
		// ciudades = getCities();
	}
	

	public Mesa getMesa(int idMesa) throws SQLException
	{
		// ArrayList<Ciudad> cities = new ArrayList<Ciudad>();
		SQLiteDatabase bd = DBHelper.getWritableDatabase();
		String[] columnas = new String[] { ID, CANTIDAD, NUMERO, ESTADO};
		String condicion = "ID = "+idMesa;
		Cursor cursor = bd.query(TABLE_NAME, columnas,condicion, null, null, null, null);
		Mesa mesa = null;
		if (cursor != null)
		{
			cursor.moveToFirst();
			for (int i = 0; i < cursor.getCount(); i++)
			{
				mesa = new Mesa();
				mesa.setId(cursor.getInt(0));
				mesa.setCantidad(cursor.getInt(1));
				mesa.setNumero(cursor.getInt(2));
				mesa.setEstado(cursor.getInt(3));
				cursor.moveToNext();
			}
			cursor.close();
			bd.close();
			return mesa;
		}
		return null;
	}
	public ArrayList<Mesa> getMesas() throws SQLException
	{
		ArrayList<Mesa> mesas = new ArrayList<Mesa>();
		SQLiteDatabase bd = DBHelper.getWritableDatabase();
		// SQLiteDatabase bd = DbFromFile.getReadableDatabase();
		/*
		 * el string de columnas sirve para indicar al query que columnas
		 * queremos obtener del select
		 */
		String[] columnas = new String[] { ID, CANTIDAD, NUMERO, ESTADO};
		/*
		 * estructura del query bd.query(NOMBRE_DE_LA_TABLA,ARREGLO_DE_COLUMNAS,
		 * null, null, null, null, null); los null son para otras consultas con
		 * innerjoin y group by
		 */
		Cursor cursor = bd.query(TABLE_NAME, columnas, null, null, null, null, null);
		/*
		 * si el cursor(equivalente a un contenedor de filas) es diferente de
		 * nulo
		 */
		if (cursor != null)
		{
			/*
			 * hacemos que el cursor regrese a la primera fila con el metodo
			 * 'moveToFirst()'
			 */
			cursor.moveToFirst();
			/* iteramos para recorrer todo el cursor */
			
			for (int i = 0; i < cursor.getCount(); i++)
			{
				/*
				 * instanciamos la ciudad con los valores obteniendolos del
				 * cursor en cada metodo get se tiene que especificar el indice
				 * de la columna del resultado de la consulta
				 */
				Mesa mesa = new Mesa();
				mesa.setId(cursor.getInt(0));
				mesa.setCantidad(cursor.getInt(1));
				mesa.setNumero(cursor.getInt(2));
				mesa.setEstado(cursor.getInt(3));
				//ciudad.setImagen(getBitmapFromAsset(ciudad));
				System.out.println(mesa.getId());
				/* agregamos la ciudad al la lista de ciudades */
				mesas.add(mesa);
				/* movemos el cursor a la siguiente fila */
				cursor.moveToNext();
			}
			/* tenemos que cerrar el cursor */
			cursor.close();
			bd.close();
			return mesas;
		}
		bd.close();
		return null;
	}
	

}
